<?php
class Model_Menu extends Zend_Db_Table_Abstract{
	protected  $_name = 'menu';
	/**
	 * Lấy tất cả bản ghi menu
	 */
	public function getAllMenus(){
		return $this->fetchAll($this->select()->order('priority'));
	}
	/**
	 * 
	 * Lấy menu theo id
	 * @param int $id
	 */
	public function getMenuByID($id){
		return $this->find($id)->current();
	}
	/**
	 * 
	 * Tạo menu
	 * @param string $name Tên menu
	 * @param string $link Đường dẫn của menu
	 * @param string $type Kiểu menu (page, article, product, category)
	 * @param int $priority Thứ tự ưu tiên
	 * @return int|false
	 */
	public function createMenu($name, $link, $type, $priority){
		try{
			$menu = $this->createRow();
			$menu->name = $name;
			$menu->link = $link;
			$menu->type = $type;
			$menu->priority = $priority;
			$menu->save();
			$id = $this->_db->lastInsertId();
			if($id){
				return $id;
			}else{
				return false;
			}
		}catch(Exception $ex){
			echo $ex->getMessage();
			return false;
		}
	}
	/**
	 * 
	 * Sửa thông tin menu
	 * @param int $id ID menu
	 * @param string $name Tên menu
	 * @param string $link Đường dẫn của menu
	 * @param string $type Kiểu menu (page, article, product, category)
	 * @param int $priority Thứ tự ưu tiên
	 * @return int|false
	 */
	public function updateMenu($id, $name, $link, $type, $priority){
		$data = array('name' => $name, 'link' => $link, 'type' => $type, 'priority' => $priority);
		try{
			if($this->update($data,'id='.$id))
				return true;
			else{
				return false;
			}
		}catch (Exception $ex){
			echo "Caught exception: " + $ex->getMessage();
			return false;
		}
	}
	/**
	 * 
	 * Xóa menu
	 * @param int $id ID menu
	 * @return boolean
	 */
	public function deleteMenu($id){
		try{
			if(is_numeric($id)){
				return $this->delete('id = '.$id);
			}else{
				return $this->delete('id in ('.$id.')');
			}
		}catch(Exception $ex){
			echo $ex->getMessage();
			return false;
		}
	}
	
}